<?php 
function category($arr,$pid=0,$level=0)
{
    static $list=array();
    //通过遍历查找是否属于顶级父类，pid=0为顶级父类，
    foreach($arr as $key=>$value){
        //进行判断如果pid=0，那么为顶级父类，放入定义的空数组里
        if($value['pid']==$pid){
            $arr['level']=$level;
            $value['level']=$level;
            $list[]=$value;
            unset($arr[$key]);//删除当前节点，节省递归数量
            //递归点，调用自身，把顶级父类的主键id作为父类进行再调用循环
            category($arr,$value['id'],$level+1);
        }
    }
    return $list;//递归出口
}